<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Mr.UBKey
 * Date: 27/10/2011
 * Time: 17:25
 * To change this template use File | Settings | File Templates.
 */
#[Table('product')]
#[PrimaryKey('id')]
class Areas_Product_Models_Product extends XPHP_Model
{
    #[Command(insert = false, update = false)
    public $id;

    #[Label('Tên sản phẩm')]
    #[Required(message = 'Tên sản phẩm bắt buộc nhập')]
    #[MaxLength(255, message = 'Tên sản phẩm có tối đa 255 kí tự')]
    public $name;

    #[Label('Mã sản phẩm')]
    #[Required(message = 'Mã sản phẩm là bắt buộc nhập')]
    #[MaxLength(100, message = 'Mã sản phẩm có tối đa 100 kí tự')]
    public $identity_name;

    #[Label('Mô tả sản phẩm')]
    public $description;

    #[Label('Mô tả ngắn')]
    public $headline;

    #[Label('Tên thương hiệu')]
    public $trademark;

    #[Label('Tình trạng hàng')]
    public $status;

    #[Label('Xuất xứ')]
    public $origin;

    #[Label('Vận chuyển')]
    public $shipping;

    #[Label('Ảnh sản phẩm')]
    #[Required(message = 'Tên danh mục là bắt buộc nhập')]
    #[MaxLength(255, message = 'Tên danh mục có tối đa 255 kí tự')]
    public $image;

    #[Label('Ảnh phụ')]
    public $subimage;

    #[Label('Giá sản phẩm')]
    public $price;

    public $date_create;

    #[Label('Danh mục sản phẩm')]
    public $category_id;
    
    public $lang_id;

    /**
     * Lấy ra danh sách các sản phẩm
     * @param array $options Các lựa chọn lọc sản phẩm
     * @return mixed
     */
    public function getProducts($options = array())
    {
        foreach($options as $key => $val)
        {
            $this->db->where($key, $val);
        }

        return $this->db->where('lang_id', $_SESSION['lang_id'])
        				->order_by('date_create', 'desc')
                        ->get()
                        ->result();
    }

    /**
     * Lấy ra danh sách các sản phẩm mới nhất
     * @return void
     */
    public function getLastestProduct($num = 10)
    {
        return $this->db->where('lang_id', $_SESSION['lang_id'])
        				->order_by('date_create', 'desc')
                        ->limit($num)
                        ->get()
                        ->result();
    }
}
